/*
 * > /*
>  * INSANE - Interactive Structural Analysis Environment
>  *
>  * Copyright (C) 2003-2004
>  * Universidade Federal de Minas Gerais
>  * Escola de Engenharia
>  * Departamento de Engenharia de Estruturas
>  *
>  * Author's email :     insane@dees.ufmg.br
>  * Author's Website :   http://www.dees.ufmg.br/insane
>  *
>  * This program is free software; you can redistribute it and/or
>  * modify it under the terms of the GNU General Public License
>  * as published by the Free Software Foundation; either version 2
>  * of the License, or any later version.
>  *
>  * This program is distributed in the hope that it will be useful,
>  * but WITHOUT ANY WARRANTY; without even the implied warranty of
>  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
>  * GNU General Public License for more details.
>  *
>  * You should have received a copy of the GNU General Public License
>  * along with this program; if not, write to the Free Software
>  * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-
> 1307, USA.
 *
 */

package br.ufmg.dees.insane.ui.rich.prep.view.command;

import br.ufmg.dees.insane.commons.command.Command;
import br.ufmg.dees.insane.ui.rich.prep.view.DesktopPrep;
import br.ufmg.dees.insane.ui.rich.prep.view.InterfacePrep;

/**
 *
 * @author Fonseca, Flavio & Pitangueira, Roque
 * @since January 2004
 */
public class SnapCommand implements Command {
	
    private InterfacePrep intFrame;
    private DesktopPrep desktop;
    
//	****************************************************************************
	
    /** Creates new SnapCommand */
    public SnapCommand() {}  
    
//	****************************************************************************
	
	/** Execute method. */
    public void execute()
    {
        if (intFrame.getView().getViewState().isSnapOn())
        {
        	intFrame.getView().getViewState().setSnap(false);
        	intFrame.getView().getDrawingArea().setSnap(false);
        	desktop.getDesktopTextArea().addText("Snap off.");
        }
        else
        {
        	intFrame.getView().getViewState().setSnap(true);
        	intFrame.getView().getDrawingArea().setSnap(true);
        	desktop.getDesktopTextArea().addText("Snap on.");
        }
        desktop.setStateButtons();
        intFrame.getView().getDrawingArea().repaint();
		
    }
	
//	****************************************************************************
	
	/** Impossible to undo - Not implemented. */
    public void redo() {}
    
//	****************************************************************************
	
	/** Impossible to redo - Not implemented. */
    public void undo() {}
    
//	****************************************************************************
   
	public void setParent(InterfacePrep currentIntFrame, DesktopPrep dsk)
	{
		this.intFrame = currentIntFrame;
		this.desktop = (DesktopPrep)dsk;
	}
	
//	****************************************************************************	
}
